import matplotlib.pyplot as plt

x_values = list(range(10001))
y_values = [x ** 2 for x in x_values]
plt.scatter(x_values, y_values, c=y_values,
            cmap=plt.cm.Blues,
            edgecolors='none', s=40)
plt.scatter(
    x_values,
    y_values,
    c=y_values,              # 颜色根据 y 值变化
    cmap='Blues',       # 颜色映射  https://matplotlib.org/stable/users/explain/colors/colormaps.html#diverging
    edgecolors='none',
    s=40,
    vmin=0, vmax=1100000     # ✅ 设置颜色映射范围（很重要）
)

# 设置图表标题并给坐标轴加上标签
plt.title("Square Numbers", fontsize=24)

plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of VAlue", fontsize=14)

# 设置刻度标记的大小。 which:major-主刻度，minor-次刻度，both-主刻度+次刻度
plt.tick_params(axis='both', which='major', labelsize=14)

# 设置每个坐标轴的取值范围
plt.axis([0, 1100, 0, 1100000])

# ✅ 关闭科学计数法显示
# plt.ticklabel_format(style='plain', axis='y')
# plt.show()
plt.savefig("imgs/scatter_squares-squares.png", dpi=600)